#!/bin/sh
cd `dirname $0`
#################################################
###注意编码格式
#################################################
source ../../../config.sh
exec_dir basic_function_data_table

HIVE_DB=test
HIVE_TABLE=basic_function_data_table
TARGET_TABLE=basic_function_data_table

function create_table(){
	hadoop fs -rm -r ${BASE_HIVE_DIR}/${HIVE_DB}/${HIVE_TABLE} || :

	hive -e "DROP TABLE	IF EXISTS ${HIVE_DB}.${HIVE_TABLE};"

	hive -e"
	CREATE EXTERNAL TABLE IF NOT EXISTS ${HIVE_DB}.${HIVE_TABLE}(

	 menu_no String comment '功能点编号',
	 menu_name String comment '功能点名称',
	 table_name  String comment '表名',
	 create_time   String  comment '创建时间'
	)
	COMMENT '功能点数据表来源信息表'
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
    LOCATION '${BASE_HIVE_DIR}/${HIVE_DB}/${HIVE_TABLE}'"
    fn_log "创建表--功能点数据表来源信息表:${HIVE_DB}.${HIVE_TABLE}"
}
function import_table(){
    ###################################################
    ###加载本地数据
    ###################################################

    hive -e "LOAD DATA LOCAL INPATH '../../../csv/basic_function_data_table.csv' INTO TABLE ${HIVE_DB}.${HIVE_TABLE};"

    fn_log "加载本地数据到"

    hive -e "
           INSERT OVERWRITE table ${HIVE_DB}.${HIVE_TABLE}
		  select
		   distinct

		   a.menu_no,
		   a.menu_name,
		   a.table_name,
          FROM_UNIXTIME(UNIX_TIMESTAMP()) AS create_time

		   from
		   (
            select

            a.menu_no,
			a.menu_name,
            tmp as table_name,
            row_number() over(order by a.menu_no desc) as num

            from ${HIVE_DB}.${HIVE_TABLE} a
	    lateral view explode(split(table_name,'/')) num as tmp
           )a
            where a.num>1 and a.table_name != ''
           "

		    fn_log "导入数据--功能点数据表来源信息表:${HIVE_DB}.${HIVE_TABLE}"
}
#导出数据
function export_table(){
    clear_mysql_data "TRUNCATE TABLE ${TARGET_TABLE};"

    sqoop export --connect ${MYSQL_URL} --username ${MYSQL_USERNAME} --password ${MYSQL_PASSWORD} \
    --table ${TARGET_TABLE} --export-dir  ${BASE_HIVE_DIR}/${HIVE_DB}/${HIVE_TABLE} \
    --input-fields-terminated-by ',' --input-null-string '\\N' --input-null-non-string '\\N' \
    --null-string '\\N' --null-non-string '\\N' \
    --columns "menu_no,menu_name,table_name,create_time"

    fn_log "导出数据--功能点数据表来源信息表:${HIVE_DB}.${TARGET_TABLE}"

}
create_table
import_table
export_table
